1. Technical Field
This invention generally relates to data processing, and more specifically relates to utilization of resources in a computer system.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices that may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
One problem with computer systems today is balancing the cost of the computer hardware with fluctuating demands on computer resources. In most networked computer systems, there are times when the computing demands are relatively low, and other times when the computing demands are very high. If a company purchases a computer system that is capable of meeting peak demand, much of the capacity of the computer system will go unused during non-peak times. In addition, purchasing capacity to meet peak demand is costly. If a company purchases a computer system that is capable of meeting average demand, the cost is lower, but the performance of the computer system suffers during peak times.
One way to provide a more flexible solution allows a computer user to buy a computer system that has some resources installed, but initially disabled. When the customer determines that more capacity is needed, the customer may enter into an arrangement with the provider of the computer system to enable certain resources for a fixed period of time. This works out particularly well for companies that have seasonal peaks. The companies can purchase a computer system at a reasonable cost that has the capability of providing enhanced computing power during the peak season. The concept of providing temporary capacity on demand is the subject matter of the related patent application “Method to Provide On-Demand Resource Access”, Ser. No. 10/406,652, filed on Apr. 3, 2003.
Referring to FIG. 2, a flow diagram of one suitable method 200 for providing temporary capacity on demand begins by the customer requesting an enablement code from the manufacturer (step 210). The customer receives the enablement code, which includes a specification of resource-time (step 220). The term “resource-time” is a general term that allows specifying any resource or combination of resources for any suitable period of time. One example of resource-time is processor-days. The customer enters the enablement code, which enables the resources on the computer system (step 230). A timer is then started (step 240). The user may then use the resources (step 250) as long as the resource-time has not expired (step 260=NO). Once the resource-time expires (step 260=YES), the resources are disabled (step 270).
A simple example will show the usefulness of method 200. Let's assume that a company that sells goods via catalog sales experiences peak demand in November and December of each year due to holiday shopping. The company could purchase a computer system that has one or more additional processors that are installed but initially disabled. The company may then contract with the provider of the computer system to enable the additional processor(s) for a set period of time. Let's assume that the computer system has two additional processors, and let's assume that the peak buying period runs for the thirty day period from November 15th to December 14th. The customer could purchase sixty processor-days of additional capacity beginning on November 15th. These two additional processors will then be enabled for the thirty day period (providing the sixty processor-days of additional capacity). Once the sixty processor-days have elapsed, the two additional processors are disabled.
One problem with method 200 is the customer pays for the resource-time even though the resources may be used only a fraction of that time. For example, if the additional processors are used primarily during the eight hour day shift, the customer ends up paying for capacity that goes mostly unused during the other two shifts. In the example above, if the customer purchases sixty processor-days, and two processors are being enabled, these two processors are enabled for exactly thirty days regardless of workload during that time. While this is a vast improvement over prior systems that do not provide temporary capacity on demand, it still has its drawbacks.
Without a way to provide temporary capacity on demand in a way that allows customers to pay for only the actual use of temporary resources, the computer industry will not be able to meet the demands of customers who prefer to pay for temporary resources based on actual usage.